package com.fulihui.wgj.facade.service.user;

import com.fulihui.common.error.InvokeServiceException;
import com.fulihui.common.result.rpc.BaseResult;
import com.fulihui.wgj.facade.request.user.UserLoginPasswordRequest;
import com.fulihui.wgj.facade.request.user.UserLoginRequest;
import com.fulihui.wgj.facade.request.user.UserPageRequest;
import com.fulihui.wgj.facade.result.user.UserPageResult;

import java.util.List;

/**
 * 用户登陆注册Service
 *
 * @author wang_wx
 * @date 2018/6/13 0013
 */
public interface UserLoginService {

    /**
     * 分页查询用户
     *
     * @param userPageRequest
     * @return
     * @throws InvokeServiceException
     */
    UserPageResult queryPage(UserPageRequest userPageRequest) throws InvokeServiceException;

    /**
     * 注册用户
     *
     * @param userLoginRequest
     * @return
     * @throws InvokeServiceException
     */
    BaseResult register(UserLoginRequest userLoginRequest) throws InvokeServiceException;

    /**
     * 修改用户密码
     *
     * @param updatePasswordRequest
     * @return
     * @throws InvokeServiceException
     */
    BaseResult updatePassword(UserLoginPasswordRequest updatePasswordRequest) throws InvokeServiceException;

    /**
     * 用户登陆
     *
     * @param userLoginRequest
     * @return
     * @throws InvokeServiceException
     */
    BaseResult login(UserLoginRequest userLoginRequest) throws InvokeServiceException;

    /**
     * 用户绑定公众号
     *
     * @param loginId 用户登陆账号
     * @param appIds  公众号appId列表
     * @return
     * @throws InvokeServiceException
     */
    BaseResult bindUserWxPlatform(String loginId, List<String> appIds);
}
